The following relates generally to memory devices and more specifically to efficient memory access techniques in memory devices with multiple partitions.
Memory devices are widely used to store information in various electronic devices such as computers, wireless communication devices, cameras, digital displays, and the like. Information is stored by programming different states of a memory device. For example, binary devices have two states, often denoted by a logic “1” or a logic “0.” In other systems, more than two states may be stored. To access the stored information, a component of the electronic device may read, or sense, the stored state in the memory device. To store information, a component of the electronic device may write, or program, the state in the memory device.
Multiple types of memory devices exist, including magnetic hard disks, random access memory (RAM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), ferroelectric RAM (FeRAM), magnetic RAM (MRAM), resistive RAM (RRAM), read only memory (ROM), flash memory, phase change memory (PCM), 3D cross-point (3DXP) memory, and others. Memory devices may be volatile or non-volatile. Non-volatile memory, e.g., PCM, may maintain their stored logic state for extended periods of time even in the absence of an external power source. Volatile memory devices, e.g., DRAM, may lose their stored state over time unless they are periodically refreshed by an external power source. Improving memory devices may include increasing memory cell density, increasing read/write speeds, increasing reliability, increasing data retention, reducing power consumption, or reducing manufacturing costs, among other metrics.
Memory devices also may store data in a number of different partitions within the memory device. Each partition may include memory cells and other logic, such as controller logic and data buffers, for example. Each partition may read or write independently, allowing multiple partitions to be accessed concurrently. When accessing a memory device, a memory controller may use a memory address for one or more memory cells in a partition along with a command, such as a read command, write command, refresh command, etc. Memory devices that are used for relatively long term storage (e.g., a solid state drive, hard drive, optical drive, etc.) are often referred to as “storage” subsystems, and a lower bandwidth bus having a relatively small pin count may be used to couple such storage subsystems with a processor. Memory devices that are used for relatively short-term storage (e.g., cache or random access memory) are often referred to as “memory” subsystems, and a higher bandwidth bus having relatively a relatively large pin count may be used to couple such memory subsystems with a processor. In some systems, a command may be sent to a storage subsystem over multiple clock cycles using a lower bandwidth bus, and a similar command sent to a memory subsystem may use fewer clock cycles over a higher bandwidth bus.
Phase change memory and 3DXP memory are a relatively new memory class, may be non-volatile, and may offer improved read/write speeds and endurance compared to other memory devices. Such memory devices may, in some cases, be used in memory subsystems or storage subsystems. In some cases, providing phase change or 3DXP memory devices having different bus architectures may be technologically unfeasible or cost prohibitive. Instead, other techniques for command and data transfer may reduce memory device cost or increase performance.